# 多阶段构建
# First stage: complete build environment
FROM maven:3.5.0-jdk-8-alpine AS builder
# add pom.xml and source code
COPY ./pom.xml pom.xml
COPY ./src src/
# package jar
RUN mvn clean package

# Second stage: minimal runtime environment
From openjdk:8-jre-alpine
# copy jar from the first stage
# --from也就是多阶段构建的提现，会从上个阶段进行下一阶段的构建，我进去第二阶段构建好的容器里边看了，果然看不到第一阶段中的源代码啥的
COPY --from=builder target/multistage-docker-2.6.3.jar multistage-docker-2.6.3.jar
EXPOSE 8080
CMD ["java", "-jar", "multistage-docker-2.6.3.jar"]







#编写说明
#1.FROM。    docker构建的镜像都是分层的，FROM代表咱们当前这个镜像基于哪个镜像，咱们就是往人家那镜像上边铺了一层
#2.RUN。     docker build时候运行的命令，也就是由Dockerfile构建镜像的时候
#3.CMD。     docker run的时候运行的命令，也就是根据镜像跑起一个容器的时候
#4.COPY。    构建镜像的时候，从当前环境复制文件到容器里边，ADD跟COPY之间，官方建议使用COPY
#5.ADD。     构建镜像的时候，从当前环境复制文件到容器里边。跟COPY的区别就是，ADD会解压压缩包
